home *** CD-ROM | disk | FTP | other *** search
/ Ian & Stuart's Australian Mac 1993 September / September 93.iso / Archives / Applications / Text / Text Editors / Alpha 5.31 Folder / Tcl / SystemCode / win.tcl < prev   
Encoding:
Text File  |  1993-02-14  |  3.1 KB  |  143 lines  |  [TEXT/ALFA]

  1. #=============================================================================
  2. #    Window handling routines.
  3. #=============================================================================
  4. proc shrinkHigh {} {
  5.     set text [getGeometry]
  6.     set left [lindex $text 0]
  7.     set top [lindex $text 1]
  8.     set width [lindex $text 2]
  9.     sizeWin $width 150
  10.     moveWin $left 42 
  11. }
  12.  
  13. proc shrinkLow {} {
  14.     set text [getGeometry]
  15.     set left [lindex $text 0]
  16.     set top [lindex $text 1]
  17.     set width [lindex $text 2]
  18.     moveWin $left 330
  19.     sizeWin $width 146
  20. }
  21.  
  22.  
  23. proc swapWithNext {} {
  24.     set files [winNames -f]
  25.     set len [llength $files]
  26.     if {$len <= 1} return
  27.     bringToFront [lindex $files 1]
  28. }
  29.     
  30. proc nextWindow {} {
  31.     set files [winNames -f]
  32.     if {[llength $files] <= 1} return
  33.     sendToBack [lindex $files 0]
  34. }
  35.  
  36. proc prevWindow {} {
  37.     set files [winNames -f]
  38.     set len [llength $files]
  39.     if {$len <= 1} return
  40.     bringToFront [lindex $files [expr $len-1]]
  41. }
  42.  
  43. proc vertically {} {
  44.     global tileHeight
  45.     global tileWidth
  46.     global numWinsToTile
  47.     set margin 22
  48.     set names [winNames -f]
  49.     set numWins [llength $names]
  50.     if ($numWins<=1) return
  51.     if ($numWins>$numWinsToTile) {set numWins $numWinsToTile}
  52.     set height [expr ($tileHeight/$numWins)-$margin]
  53.     set height [expr {$height + $margin / $numWins}]
  54.     set width $tileWidth
  55.     set ver 40
  56.     if {$numWins == 0} {return}
  57.  
  58.     for {set i 0} {$i < $numWins} {incr i} {
  59.         moveWin [lindex $names $i] 1000 0
  60.     }
  61.  
  62.     for {set i 0} {$i < $numWins} {incr i} {
  63.         sizeWin [lindex $names $i] $width $height
  64.         moveWin [lindex $names $i] 3 $ver
  65.         set ver [expr $ver+$margin+$height]
  66.     }
  67. }
  68.  
  69. proc horizontally {} {
  70.     global tileHeight
  71.     global tileWidth
  72.     global numWinsToTile
  73.     set names [winNames -f]
  74.     set numWins [llength $names]
  75.     if ($numWins<=1) return
  76.     if ($numWins>$numWinsToTile) {set numWins $numWinsToTile}
  77.     set margin 4
  78.     set width [expr ($tileWidth/$numWins)-$margin]
  79.     set width [expr {$width + $margin / $numWins}]
  80.     set height $tileHeight
  81.     set hor 0
  82.     if {$numWins == 0} {return}
  83.  
  84.     for {set i 0} {$i < $numWins} {incr i} {
  85.         moveWin [lindex $names $i] 1000 0
  86.         sizeWin [lindex $names $i] $width $height
  87.     }
  88.  
  89.     for {set i 0} {$i < $numWins} {incr i} {
  90.         moveWin [lindex $names $i] $hor 40
  91.         set hor [expr $hor+$width+$margin]
  92.     }
  93. }
  94.  
  95. proc tiled {} {
  96.     global tileHeight
  97.     global tileWidth
  98.     global numWinsToTile
  99.     set xPan 8
  100.     set yPan 10
  101.     set xMarg 3
  102.     set yMarg 40
  103.     set yMax 50
  104.     set names [winNames -f]
  105.     set numWins [llength $names]
  106.     if ($numWins<1) return
  107.     set line 0    
  108.     set height [expr $tileHeight-$yPan*($numWins-1)]
  109.     set width [expr $tileWidth-$xPan*($numWins-1)]
  110.     
  111.     for {set i 0} {$i < $numWins} {incr i} {
  112.         moveWin [lindex $names $i] [expr $xMarg+$i*$xPan] [expr $yMarg+$line]
  113.         set line [expr $line+$yPan]
  114.         if ($line>$yMax) {set line 0}
  115.         sizeWin [lindex $names $i] $width $height
  116.     }
  117. }
  118.  
  119.  
  120. proc overlay {} {
  121.     global defHeight
  122.     global defWidth
  123.     global numWinsToTile
  124.     set names [winNames -f]
  125.     set numWins [llength $names]
  126.     if ($numWins<1) return
  127.     for {set i 0} {$i < $numWins} {incr i} {
  128.         moveWin [lindex $names $i] 3 40
  129.         sizeWin [lindex $names $i] $defWidth $defHeight
  130.     }
  131. }
  132.  
  133.  
  134. proc chooseAWindow {} {
  135.     set name [listpick [lsort [winNames]]]
  136.     if {[string length $name]} {
  137.         bringToFront $name
  138.         if [icon -q] { icon -f $name -o }
  139.        }
  140. }
  141.  
  142.  
  143.